package com.jsh.erp.datasource.mappers;

import com.jsh.erp.datasource.entities.*;
import com.jsh.erp.datasource.vo.*;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface SynchronizationTaskMapperEx {

    List<AccountHead> selectAccountHead(@Param("tenantId") String tenantId);
    List<AccountItem> selectAccountItem(@Param("tenantId") String tenantId);
    List<Account> selectAccount();
    List<Attachment> selectAttachment(@Param("tenantId") String tenantId);
    List<Depot> selectDepot(@Param("tenantId") String tenantId);
    List<DepotHead> selectDepotHead(@Param("tenantId") String tenantId);
    List<DepotItem> selectDepotItem(@Param("tenantId") String tenantId);
    List<InOutItem> selectInOutItem(@Param("tenantId") String tenantId);
    List<MaterialAttribute> selectMaterialAttribute(@Param("tenantId") String tenantId);
    List<MaterialCurrentStock> selectMaterialCurrentStock(@Param("tenantId") String tenantId);
    List<MaterialInitialStock> selectMaterialInitialStock(@Param("tenantId") String tenantId);
    List<PromotionDepot> selectPromotionDepot(@Param("tenantId") String tenantId);
    List<PromotionGift> selectPromotionGift(@Param("tenantId") String tenantId);
    List<PromotionHead> selectPromotionHead(@Param("tenantId") String tenantId);
    List<PromotionItem> selectPromotionItem(@Param("tenantId") String tenantId);
    List<PromotionSupplier> selectPromotionSupplier(@Param("tenantId") String tenantId);
    List<Msg> selectMsg(@Param("tenantId") String tenantId);
    List<OrgaUserRel> selectOrgaUserRel(@Param("tenantId") String tenantId);
    List<Organization> selectOrganization(@Param("tenantId") String tenantId);
    List<Person> selectPerson(@Param("tenantId") String tenantId);
    List<Rebate> selectRebate(@Param("tenantId") String tenantId);
    List<RebateItem> selectRebateItem(@Param("rebateId") String rebateId);
    List<RebateMaterial> selectRebateMaterial(@Param("tenantId") String tenantId);
    List<RebateRule> selectRebateRule(@Param("tenantId") String tenantId);
    List<Role> selectRole(@Param("tenantId") String tenantId);
    List<SerialNumber> selectSerialNumber(@Param("tenantId") String tenantId);
    List<Supplier> selectSupplier(@Param("tenantId") String tenantId,@Param("type") String type);
    List<SystemConfig> selectSystemConfig(@Param("tenantId") String tenantId);
    List<Tenant> selectTenant(@Param("tenantId") String tenantId);
    List<Unit> selectUnit(@Param("tenantId") String tenantId);
    List<User> selectUser(@Param("tenantId") String tenantId);
    List<UserBusiness> selectUserBusiness(@Param("tenantId") String tenantId);
    List<UserCategory> selectUserCategory(@Param("tenantId") String tenantId);
    List<WorkflowApproveDetail> selectWorkflowApproveDetail(@Param("tenantId") String tenantId);
    List<WorkflowConfigDetail> selectWorkflowConfigDetail(@Param("tenantId") String tenantId);
    List<WorkflowConfigMain> selectWorkflowConfigMain(@Param("tenantId") String tenantId);
    List<WorkflowProcessDetail> selectWorkflowProcessDetail(@Param("tenantId") String tenantId);
    List<WorkflowProcessDetailHis> selectWorkflowProcessDetailHis(@Param("tenantId") String tenantId);
    List<CashBoxRecord> selectCashBoxRecord(@Param("tenantId") String tenantId);
    List<RetailRecord> selectRetailRecord(@Param("tenantId") String tenantId);
    List<Address> selectAddress(@Param("tenantId") String tenantId);
    List<Transport> selectTransport(@Param("tenantId") String tenantId);
    List<String> getTenantDepotIdList(@Param("tenantId")String tenantId);
    List<AuditSynchronization> selectAuditSynchronization(@Param("tenantId") String tenantId);
    int insertDepotItemList(@Param("list") List<DepotItem> list,@Param("tenantId") String tenantId);
    int updateDepotItemList(@Param("list") List<DepotItem> list,@Param("tenantId") String tenantId);
    int insertAttachmentList(@Param("list") List<Attachment> list,@Param("tenantId") String tenantId);
    int updateAttachmentList(@Param("list") List<Attachment> list,@Param("tenantId") String tenantId);
    List<DepotHead> selectDepotHeadByType(@Param("tenantId") String tenantId,@Param("subType") String subType);
    List<DepotHead> selectOldDepotHeadByType(@Param("tenantId") String tenantId,@Param("subType") String subType);
    List<DepotHead> selectSyncDepotHeadByType(@Param("tenantId") String tenantId,@Param("subType") String subType);
    List<Attachment> selectAttachmentByHid(@Param("tenantId") String tenantId,@Param("headerId") String headerId);
    List<DepotItem> selectDepotItemByHid(@Param("tenantId") String tenantId,@Param("headerId") String headerId);
    int updateDepotHeadByPrimaryKeySelective(DepotHead record);
    int insertDepotHeadSelective(DepotHead record);
    int insertMaterialSelective(Material record);
    int insertRebateSelective(Rebate record);
    int updateMaterialByPrimaryKeySelective(Material record);
    int updateRebateByPrimaryKeySelective(Rebate record);
    int updateAccountHead(@Param("idList") List<String> idList);
    int updateAccountItem(@Param("idList") List<String> idList);
    int updateAccount(@Param("idList") List<String> idList);
    int updateAttachment(@Param("idList") List<String> idList);
    int updateDepot(@Param("idList") List<String> idList);
    int updateDepotHead(@Param("idList") List<String> idList);
    int updateDepotItem(@Param("idList") List<String> idList);
    int updateInOutItem(@Param("idList") List<String> idList);
    int updateMaterialAttribute(@Param("idList") List<String> idList);
    int updateMaterialCurrentStock(@Param("idList") List<String> idList);
    int updateMaterialInitialStock(@Param("idList") List<String> idList);
    int updatePromotionDepot(@Param("idList") List<String> idList);
    int updatePromotionGift(@Param("idList") List<String> idList);
    int updatePromotionHead(@Param("idList") List<String> idList);
    int updatePromotionItem(@Param("idList") List<String> idList);
    int updatePromotionSupplier(@Param("idList") List<String> idList);
    int updateMsg(@Param("idList") List<String> idList);
    int updateOrgaUserRel(@Param("idList") List<String> idList);
    int updateOrganization(@Param("idList") List<String> idList);
    int updatePerson(@Param("idList") List<String> idList);
    int updateRebate(@Param("idList") List<String> idList);
    int updateRebateItem(@Param("idList") List<String> idList);
    int updateRebateMaterial(@Param("idList") List<String> idList);
    int updateRebateRule(@Param("idList") List<String> idList);
    int updateRole(@Param("idList") List<String> idList);
    int updateSerialNumber(@Param("idList") List<String> idList);
    int updateSupplier(@Param("idList") List<String> idList);
    int updateSystemConfig(@Param("idList") List<String> idList);
    int updateTenant(@Param("idList") List<String> idList);
    int updateUnit(@Param("idList") List<String> idList);
    int updateUser(@Param("idList") List<String> idList);
    int updateUserBusiness(@Param("idList") List<String> idList);
    int updateUserCategory(@Param("idList") List<String> idList);
    int updateWorkflowApproveDetail(@Param("idList") List<String> idList);
    int updateWorkflowConfigDetail(@Param("idList") List<String> idList);
    int updateWorkflowConfigMain(@Param("idList") List<String> idList);
    int updateWorkflowProcessDetail(@Param("idList") List<String> idList);
    int updateWorkflowProcessDetailHis(@Param("idList") List<String> idList);
    int updateCashBoxRecord(@Param("idList") List<String> idList);
    int updateRetailRecord(@Param("idList") List<String> idList);
    int updateAddress(@Param("idList") List<String> idList);
    int updateTransport(@Param("idList") List<String> idList);

    List<Material> selectMaterialByTime(@Param("tenantId") String tenantId);
    List<MaterialCategory> selectMaterialCategoryByTime();
    List<MaterialExtend> selectMaterialExtendByTime(@Param("materialId") String materialId);
    List<Unit> selectUnitByTime();
    List<Tenant> selectTenantTime();
    List<User> selectUserTime();
    List<UserCategory> selectUserCategoryTime();
    List<UserBusiness> selectUserBusinessTime();
    List<Role> selectRoleTime();
    List<Person> selectPersonTime();
    List<Organization> selectOrganizationTime();
    List<OrgaUserRel> selectOrgaUserRelTime();
    List<PromotionSupplier> selectPromotionSupplierTime(@Param("headerId") String headerId);
    List<PromotionItem> selectPromotionItemTime(@Param("headerId") String headerId);
    List<PromotionHead> selectPromotionHeadTime(@Param("tenantId") String tenantId);
    List<PromotionGift> selectPromotionGiftTime(@Param("itemId") String itemId);
    List<PromotionDepot> selectPromotionDepotTime();
    List<Depot> selectDepotTime();
    List<User> selectUserNotTenantId();
    int insertMaterial(Material data);
    int insertMaterialCategory(MaterialCategory data);
    int insertMaterialExtend(MaterialExtend data);
    int insertUnit(Unit data);
    int insertTenant(Tenant data);
    int insertUser(User data);
    int insertUserCategory(UserCategory data);
    int insertUserBusiness(UserBusiness data);
    int insertRole(Role data);
    int insertPerson(Person data);
    int insertOrganization(Organization data);
    int insertOrgaUserRel(OrgaUserRel data);
    int insertPromotionSupplier(PromotionSupplier data);
    int insertPromotionHead(PromotionHead data);
    int insertPromotionDepot(PromotionDepot data);
    int insertDepot(Depot data);
    int updateMaterialTime(Material data);
    int updateMaterialCategoryTime(MaterialCategory data);
    int updateMaterialExtendTime(MaterialExtend data);
    int updateUnitTime(Unit data);
    int updateTenantTime(Tenant data);
    int updateUserTime(User data);
    int updateUserCategoryTime(UserCategory data);
    int updateUserBusinessTime(UserBusiness data);
    int updateRoleTime(Role data);
    int updatePersonTime(Person data);
    int updateOrganizationTime(Organization data);
    int updateOrgaUserRelTime(OrgaUserRel data);
    int updatePromotionSupplierTime(@Param("list")List<PromotionSupplier> list,@Param("tenantId") String tenantId);
    int insertPromotionSupplierTime(@Param("list")List<PromotionSupplier> list,@Param("tenantId") String tenantId);
    int insertPromotionItem(@Param("list")List<PromotionItem> list,@Param("tenantId") String tenantId);
    int insertPromotionGift(@Param("list")List<PromotionGift> list,@Param("tenantId") String tenantId);
    int updatePromotionItemTime(@Param("list")List<PromotionItem> list,@Param("tenantId") String tenantId);
    int updatePromotionGiftTime(@Param("list")List<PromotionGift> list,@Param("tenantId") String tenantId);
    int updateRebateItemTime(@Param("list")List<RebateItem> list,@Param("tenantId") String tenantId);
    int insertRebateItemTime(@Param("list")List<RebateItem> list,@Param("tenantId") String tenantId);
    int updatePromotionHeadTime(PromotionHead data);
    int updatePromotionDepotTime(PromotionDepot data);
    int updateDepotTime(Depot data);
    List<Material> selectMaterial(@Param("tenantId") String tenantId);
    List<MaterialCategory> selectMaterialCategory(@Param("tenantId") String tenantId);
    List<MaterialExtend> selectMaterialExtend(@Param("tenantId") String tenantId);

    SystemConfig getSystemConfigByTenantId(@Param("tenantId") String tenantId);

    MaterialVo4Unit getMaterialByColor(@Param("color") String color,@Param("type") Integer type,@Param("tenantId") String tenantId);
    int insertWorkflowApproveDetail(WorkflowApproveDetail workflowApproveDetail);
    int insertWorkflowProcessDetailHis(WorkflowProcessDetailHis workflowProcessDetailHis);

    int updateMaterialExtendList(@Param("list") List<MaterialExtend> list,@Param("tenantId") String tenantId);
    int insertMaterialExtendList(@Param("list") List<MaterialExtend> list,@Param("tenantId") String tenantId);
    List<Supplier> selectNewSupplier(@Param("type") String type,@Param("tenantId") String tenantId);
    List<Supplier> selectOldSupplier(@Param("tenantId") String tenantId,@Param("type") String type);
    int insertSupplier(Supplier record);
    int updateSupplierEntity(Supplier record);

    int updateMaterialEnabled(@Param("idList") List<String> idList);
    int updateSupplierEnabled(@Param("id")String id);
    int deletePromotionHead(@Param("id") String id);
    int deleteRebate(@Param("id") String id);
    List<Account> selectAccountList();
    int insertAccountSelective(Account record);
    //查询云服务器的单据
    List<DepotHead> selectECSDepotHeadByType(@Param("subType") String subType);

    List<DepotHead> selectDepotHeadByStatus(@Param("tenantId") String tenantId,
                                            @Param("subType") String subType,
                                            @Param("status") String status);

    List<DepotHead> selectDepotHeadByLinkNumber(@Param("tenantId") String tenantId,
                                            @Param("subType") String subType,
                                            @Param("linkNumber") List<String> linkNumber);

    List<AccountHead> selectAccountHeadByDepot(@Param("typeList") List<String> typeList,@Param("depotList") List<String> depotList);

    List<AccountHead> selectOldAccountHead(@Param("tenantId") String tenantId,@Param("typeList") List<String> typeList);
    int insertAccountHeadSelective(AccountHead record);
    int updateAccountHeadSelective(AccountHead record);

    int insertAccountItemListSelective(@Param("list")List<AccountItem> list,@Param("tenantId") String tenantId);
    int updateAccountItemListSelective(@Param("list")List<AccountItem> list,@Param("tenantId") String tenantId);

    List<Supplier> findBySelectNotTenant_cus(@Param("type") String type);


    //新的分仓下拉总仓的付款类单据
    List<AccountHead> selectCustom5AccountHead(@Param("tenantId") String tenantId);
    List<AccountItem> selectCustom5AccountItemByHeaderId(@Param("headerId") String headerId);

    //下拉盘点单
    List<DepotHead> selectCheckDepotHead(@Param("subType") String subType,@Param("depotList") List<String> depotList);

    //主仓厂家报价
    List<DepotHead> selectDepotHeadByLinkNumberNotTenantId( @Param("subType") String subType,
                                                @Param("depotList") List<String> depotList);


    //获取单据明细
    List<DepotItem> getDepotItemListByHeaderId(@Param("headerId") String headerId);


    //实际库存表
    List<MaterialCurrentStock> getCurrentByTenantId(@Param("tenantId") String tenantId,
                                                    @Param("materialId") String materialId,
                                                    @Param("depotId") String depotId);
    //期初库存表
    List<MaterialInitialStock> getMaterialInitialStock(@Param("tenantId") String tenantId,
                                                       @Param("materialId") String materialId,
                                                       @Param("depotId") String depotId);

    //计算库存
    BigDecimal getStockCheckSumByDepotListAndTenantId(
            @Param("depotList") List<String> depotList,
            @Param("mId") String mId,
            @Param("tenantId") String tenantId);

    DepotItemVo4Stock getStockByParamWithDepotListAndTenantId(
            @Param("depotList") List<String> depotList,
            @Param("mId") String mId,
            @Param("tenantId") String tenantId);


    int updateCurrentStockByPrimaryKeySelective(MaterialCurrentStock record);

    int insertCurrentStockSelective(MaterialCurrentStock record);

    List<AccountHead> getAdvanceInBySupplierId(@Param("organId")String organId,@Param("type")String type);

    List<AccountHead> getPayAdvanceInBySupplierId(@Param("organId")String organId,@Param("type")String type);

    List<AccountHead> selectAccountHeadByType(@Param("typeList") List<String> typeList);

    List<Unit> selectUnitById(@Param("id") String id);

    List<User> getUserListByTenantId(@Param("tenantId") String tenantId);

    //每日销售报表
    List<DailySales> findDailySales(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("tenantId") String tenantId);

    int findDailySalesTotal(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("tenantId") String tenantId);

    //每日职员报表
    List<DailySalesUser> getDailySalesDetail(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("creator") String creator);

//    int getDailySalesDetailTotal(
//            @Param("beginTime") String beginTime,
//            @Param("endTime") String endTime,
//            @Param("creator") String creator);
    //无用
    BigDecimal totalCreditPayment(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("tenantId") String tenantId);

    //对信用客户收款和预收款单
    List<AccountHeadCreditPayment> creditPayment(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("tenantId") String tenantId);

    List<DailySales> creditInvoices(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("tenantId") String tenantId);

    //活动的新增编辑
    int updatePromotionItemByPrimaryKeySelective(PromotionItem record);
    int insertPromotionItemSelective(PromotionItem record);
    int updatePromotionGiftByPrimaryKeySelective(PromotionGift record);
    int insertPromotionGiftSelective(PromotionGift record);
    int updatePromotionSupplierByPrimaryKeySelective(PromotionSupplier record);
    int insertPromotionSupplierSelective(PromotionSupplier record);
    int batchDeletePromotionItemById(@Param("id") String id);
    int batchDeletePromotionGiftByItemId(@Param("itemId") String itemId);
    int batchDeletePromotionSupplierById(@Param("id") String id);
    //每日销售报表
    List<DailySummarySales> getDailySummarySales(
            @Param("tenantId") String tenantId,
            @Param("dateStr") String dateStr);

    int batchDeleteCurrentStockByMaterialWithDepotId(@Param("materialId") String materialId,
                                                      @Param("depotId") String depotId);

    //调拨
    List<DepotHeadVo4List> selectAllot(
            @Param("typeList")  List<String> typeList,
            @Param("subTypeList") List<String> subTypeList,
            @Param("creatorArray") String[] creatorArray,
            @Param("statusArray") String[] statusArray,
            @Param("purchaseStatusArray") String[] purchaseStatusArray,
            @Param("number") String number,
            @Param("linkNumber") String linkNumber,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("materialParam") String materialParam,
            @Param("organId") String organId,
            @Param("creator") String creator,
            @Param("depotId") String depotId,
            @Param("depotArray") String[] depotArray,
            @Param("accountId") String accountId,
            @Param("remark") String remark,
            @Param("custom3") String custom3,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("payStatus") String payStatus,
            @Param("freightStatus") String freightStatus,
            @Param("quotationStatusArray") String[] quotationStatusArray,
            @Param("custom4") String custom4,
            @Param("color") String color,
            @Param("alwaysSelect") String alwaysSelect,
            @Param("itemType") String itemType,
            @Param("creditStatus") String creditStatus,
            @Param("depotStatus") String depotStatus,
            @Param("depotArrays") String[] depotArrays);

    Long countDepotHeadAllot(
            @Param("typeList")  List<String> typeList,
            @Param("subTypeList") List<String> subTypeList,
            @Param("creatorArray") String[] creatorArray,
            @Param("statusArray") String[] statusArray,
            @Param("purchaseStatusArray") String[] purchaseStatusArray,
            @Param("number") String number,
            @Param("linkNumber") String linkNumber,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("materialParam") String materialParam,
            @Param("organId") String organId,
            @Param("creator") String creator,
            @Param("depotId") String depotId,
            @Param("depotArray") String[] depotArray,
            @Param("accountId") String accountId,
            @Param("remark") String remark,
            @Param("custom3") String custom3,
            @Param("payStatus") String payStatus,
            @Param("freightStatus") String freightStatus,
            @Param("quotationStatusArray") String[] quotationStatusArray,
            @Param("custom4") String custom4,
            @Param("color") String color,
            @Param("alwaysSelect") String alwaysSelect,
            @Param("itemType") String itemType,
            @Param("creditStatus") String creditStatus,
            @Param("depotStatus") String depotStatus,
            @Param("depotArrays") String[] depotArrays);

    List<DepotItemVo4WithInfoEx> getHeadDetailList(
            @Param("headerId") String headerId);

    DepotHead selectDepotHeadById(@Param("id") String id);

    //调拨汇总
    List<TransferSummary> transferSummary(
            @Param("depotList") List<String> depotList,
            @Param("materialName") String materialName,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize,
            @Param("idList") List<String> idList);
    //调拨汇总明细
    List<DepotHeadVo4InDetail> transferSummaryDetail(
            @Param("depotList") List<String> depotList,
            @Param("materialId") String materialId,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize);

    List<DepotItemVo4DetailByTypeAndMId> findDetailByDepotIdsAndMaterialIdList(
            @Param("depotList") List<String> depotList,
            @Param("sku") String sku,
            @Param("mId") String mId,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows);

    Long findDetailByDepotIdsAndMaterialIdCount(
            @Param("depotList")List<String> depotList,
            @Param("sku") String sku,
            @Param("mId") String mId);

    List<DepotHeadWithItem> findCheckMaterialDetail(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("type") String type,
            @Param("materialParam") String materialParam,
            @Param("depotList") List<String> depotList,
            @Param("oId") String oId,
            @Param("number") String number,
            @Param("remark") String remark,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("subType") String subType,
            @Param("creator") String creator,
            @Param("materialId") String materialId,
            @Param("idList") List<String> idList);
    Long findCheckMaterialDetailTotal(
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("type") String type,
            @Param("materialParam") String materialParam,
            @Param("depotList") List<String> depotList,
            @Param("oId") String oId,
            @Param("number") String number,
            @Param("remark") String remark,
            @Param("subType") String subType,
            @Param("creator") String creator,
            @Param("materialId") String materialId,
            @Param("idList") List<String> idList);


    //其它出入库汇总
    List<TransferSummary> otherSummary(
            @Param("depotList") List<String> depotList,
            @Param("materialName") String materialName,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize,
            @Param("idList") List<String> idList);
    //盘点汇总
    List<TakeStockSummary> takeStockSummary(
            @Param("depotList") List<String> depotList,
            @Param("materialName") String materialName,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize,
            @Param("idList") List<String> idList);

    MaterialCurrentStock getCurrentStockByIdList(
            @Param("materialId") String materialId,
            @Param("depotId") String depotId,
            @Param("tenantId") String tenantId);

    //新增修改单据子表
    int insertDepotItemSelective(DepotItem record);

    int updateDepotItemByPrimaryKeySelective(DepotItem record);

    List<MaterialVo4Unit> getListWithStock(
            @Param("depotList") List<String> depotList,
            @Param("idList") List<String> idList,
            @Param("materialParam") String materialParam,
            @Param("zeroStock") Integer zeroStock,
            @Param("column") String column,
            @Param("order") String order,
            @Param("offset") Integer offset,
            @Param("rows") Integer rows,
            @Param("tenantIdList") List<String> tenantIdList);

    int getListWithStockCount(
            @Param("depotList") List<String> depotList,
            @Param("idList") List<String> idList,
            @Param("materialParam") String materialParam,
            @Param("zeroStock") Integer zeroStock,
            @Param("tenantIdList") List<String> tenantIdList);

    List<MaterialInitialStockWithMaterial> getInitialStockWithMaterial(
            @Param("depotList") List<String> depotList,
            @Param("tenantIdList") List<String> tenantIdList);

    List<String> getTenantIdListByDepotIdList(@Param("depotList") List<String> depotList);

    MaterialVo4Unit getTotalStockAndPrice(
            @Param("depotList") List<String> depotList,
            @Param("idList") List<String> idList,
            @Param("materialParam") String materialParam,
            @Param("tenantIdList") List<String> tenantIdList);


    List<String> getCurrentStockIdList();

    int updateCurrentStockByIdList(@Param("idList") List<String> idList);

    //获取单据明细
    List<DepotItem> getItemListByHeaderId(@Param("headerId") String headerId);

    //销售税额
    List<SalesTaxMoney> findSalesTaxMoneyList(
            @Param("depotList") List<String> depotList,
            @Param("beginTime") String beginTime,
            @Param("endTime") String endTime,
            @Param("pageNum") Integer pageNum,
            @Param("pageSize") Integer pageSize);

    List<DepotHead> selectDepotHeadByDateSub();

    List<DepotItem> selectDepotItemDateSub();
}
